import request from "@/utils/request";

import type { ChatHistoryDTO } from "@/types/aichat_history/ChatHistoryDTO";
import type { CasesDTO } from "@/types/cases/casesForm";
/**
 * 获取对话历史记录列表
 * @param params 包含userNo和type的查询参数
 * @returns 对话历史记录列表
 */
// 修改请求方法
export const getChatHistoriesByUserNo = (userNo: string) => {
  return request.post(
    "/api/cases/list",
    {}, // 请求体为空
    {
      params: { userNo }, // 使用params传递参数
      headers: {
        "Content-Type": "application/json",
      },
    }
  );
};


// 案件分析文件上传方法
/**
 * 案件分析文件上传接口
 * @param id - 案件id
 * @param file - 要上传的文件对象
 * @returns Promise<Result<void>> 返回请求结果
 */
export const uploadCaseFile = (id: any, file: File) => {
  const formData = new FormData();
  formData.append('id', id);
  formData.append('file', file);

  return request.post('/api/ai/analysis/upload', formData, {
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  });
};



/**
 * 添加案件接口
 * @param casesDTO - 包含userNo, caseName, caseProcedure的案件数据
 * @returns Promise<Result<void>> 返回请求结果
 */
export const addCase = (casesDTO: CasesDTO) => {
  return request.post('/api/cases/add', casesDTO);
};

/**
 * 修改案件信息
 * @param casesDTO - 包含案件ID和更新信息的案件数据
 * @returns Promise<Result<void>> 返回请求结果
 */
export const updateCase = (casesDTO: CasesDTO) => {
  return request.post('/api/cases/update', casesDTO);
};

/**
 * 删除案件
 * @param id - 案件ID
 * @returns Promise<Result<void>> 返回请求结果
 */
export const deleteCaseById = (id: number) => {
  return request.delete(`/api/cases/delete/${id}`);
};

/**
 * 获取案件详情
 * @param id 案件ID
 * @returns 案件详情数据
 */
export const getCaseById = (id: number) => {
  return request.get(`/api/cases/getById/${id}`);
};


/**
 * 获取某个对话的历史消息详情
 * @param chatId 对话ID
 * @returns 消息列表
 */
export const getChatDetailsMessages = (chatId: string) => {
  return request.get(`/api/ai/history/${chatId}`);
};




